﻿
using System;
using System.Data.SqlClient;
using V82;
using V82.ДокументыСсылка;
using V82.Документы;//Менеджер;
using V82.ДокументыСсылка;
using V82.Перечисления;//Ссылка;
namespace V82.Документы//Менеджер
{
	///<summary>
	///(Регл)
	///</summary>
	public partial class СчетФактураПолученный:ДокументМенеджер
	{
		
		public static ДокументыСсылка.СчетФактураПолученный НайтиПоСсылке(Guid _Ссылка)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)
					Where _IDRRef=@Ссылка";
					Команда.Parameters.AddWithValue("Ссылка", _Ссылка);
					using (var Читалка = Команда.ExecuteReader())
					{
						if (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							return Ссылка;
						}
						else
						{
							return null;
						}
					}
				}
			}
		}
		
		public static ДокументыСсылка.СчетФактураПолученный НайтиПоНомеру(string Номер)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)
					Where _Number = @Номер";
					Команда.Parameters.AddWithValue("Номер", Номер);
					using (var Читалка = Команда.ExecuteReader())
					{
						if (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							return Ссылка;
						}
						else
						{
							return null;
						}
					}
				}
			}
		}
		
		public static ДокументыВыборка.СчетФактураПолученный Выбрать()
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1000 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)";
					var Выборка = new V82.ДокументыВыборка.СчетФактураПолученный();
					using (var Читалка = Команда.ExecuteReader())
					{
						while (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							Выборка.Add(Ссылка);
						}
							return Выборка;
					}
				}
			}
		}
		
		public static ДокументыВыборка.СчетФактураПолученный ВыбратьПоСсылке(int Первые,Guid Мин,Guid Макс)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = string.Format(@"Select top {0} 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)
					Where _IDRRef between @Мин and @Макс
					Order by _IDRRef", Первые);
					Команда.Parameters.AddWithValue("Мин", Мин);
					Команда.Parameters.AddWithValue("Макс", Макс);
					var Выборка = new V82.ДокументыВыборка.СчетФактураПолученный();
					using (var Читалка = Команда.ExecuteReader())
					{
						while (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							Выборка.Add(Ссылка);
						}
							return Выборка;
					}
				}
			}
		}
		
		public static ДокументыВыборка.СчетФактураПолученный ВыбратьПоНомеру(int Первые,string Мин,string Макс)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = string.Format(@"Select top {0} 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)
					Where _Code between @Мин and @Макс
					Order by _Code", Первые);
					Команда.Parameters.AddWithValue("Мин", Мин);
					Команда.Parameters.AddWithValue("Макс", Макс);
					var Выборка = new V82.ДокументыВыборка.СчетФактураПолученный();
					using (var Читалка = Команда.ExecuteReader())
					{
						while (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							Выборка.Add(Ссылка);
						}
							return Выборка;
					}
				}
			}
		}
		
		public static ДокументыВыборка.СчетФактураПолученный СтраницаПоСсылке(int Размер,int Номер)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1000 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)";
					var Выборка = new V82.ДокументыВыборка.СчетФактураПолученный();
					using (var Читалка = Команда.ExecuteReader())
					{
						while (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							Выборка.Add(Ссылка);
						}
							return Выборка;
					}
				}
			}
		}
		
		public static ДокументыВыборка.СчетФактураПолученный СтраницаПоНомеру(int Размер,int Номер)
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1000 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld27344 [ДатаИсправления]
					,_Fld11952RRef [Контрагент]
					,_Fld22269RRef [ДоговорКонтрагента]
					,_Fld11950_TYPE [ДокументОснование_Тип],_Fld11950_RRRef [ДокументОснование],_Fld11950_RTRef [ДокументОснование_Вид]
					,_Fld11949 [ДатаВходящегоДокумента]
					,_Fld11948 [НомерВходящегоДокумента]
					,_Fld11953RRef [ВалютаДокумента]
					,_Fld11954 [СуммаДокумента]
					,_Fld11955 [СформированПриВводеНачальныхОстатковНДС]
					,_Fld11951RRef [Ответственный]
					,_Fld22267 [НомерВходящегоДокументаЭлектронногоОбмена]
					,_Fld22268 [ДатаВходящегоДокументаЭлектронногоОбмена]
					,_Fld11947 [Комментарий]
					,_Fld23020 [УдалитьНаАванс]
					,_Fld27345 [ДатаИсправленияИсходногоДокумента]
					,_Fld27346 [ДатаИсходногоДокумента]
					,_Fld27347 [Исправление]
					,_Fld27348 [КодВидаОперации]
					,_Fld27349 [КодСпособаПолучения]
					,_Fld27350 [НомерИсправления]
					,_Fld27351 [НомерИсправленияИсходногоДокумента]
					,_Fld27352 [НомерИсходногоДокумента]
					,_Fld11956RRef [Организация]
					,_Fld27353 [СуммаУвеличение]
					,_Fld27354 [СуммаУменьшение]
					,_Fld27355 [УчитыватьИсправлениеИсходногоДокумента]
					,_Fld27356 [СчетФактураБезНДС]
					,_Fld27357 [СуммаНДСУвеличение]
					,_Fld27358 [СуммаНДСУменьшение]
					,_Fld27359 [СуммаНДСДокумента]
					,_Fld27360RRef [ИсправляемыйСчетФактура]
					,_Fld27361RRef [ВидСчетаФактуры]
					,_Fld27362 [БланкСтрогойОтчетности]
					From _Document465(NOLOCK)";
					var Выборка = new V82.ДокументыВыборка.СчетФактураПолученный();
					using (var Читалка = Команда.ExecuteReader())
					{
						while (Читалка.Read())
						{
							var Ссылка = new ДокументыСсылка.СчетФактураПолученный();
							//ToDo: Читать нужно через GetValues()
							Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Ссылка.ДатаИсправления = Читалка.GetDateTime(3);
							Ссылка.ДатаВходящегоДокумента = Читалка.GetDateTime(9);
							Ссылка.НомерВходящегоДокумента = Читалка.GetString(10);
							Ссылка.СуммаДокумента = Читалка.GetDecimal(12);
							Ссылка.СформированПриВводеНачальныхОстатковНДС = ((byte[])Читалка.GetValue(13))[0]==1;
							Ссылка.НомерВходящегоДокументаЭлектронногоОбмена = Читалка.GetString(15);
							Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена = Читалка.GetDateTime(16);
							Ссылка.Комментарий = Читалка.GetString(17);
							Ссылка.УдалитьНаАванс = ((byte[])Читалка.GetValue(18))[0]==1;
							Ссылка.ДатаИсправленияИсходногоДокумента = Читалка.GetDateTime(19);
							Ссылка.ДатаИсходногоДокумента = Читалка.GetDateTime(20);
							Ссылка.Исправление = ((byte[])Читалка.GetValue(21))[0]==1;
							Ссылка.КодВидаОперации = Читалка.GetString(22);
							Ссылка.КодСпособаПолучения = Читалка.GetDecimal(23);
							Ссылка.НомерИсправления = Читалка.GetDecimal(24);
							Ссылка.НомерИсправленияИсходногоДокумента = Читалка.GetDecimal(25);
							Ссылка.НомерИсходногоДокумента = Читалка.GetString(26);
							Ссылка.СуммаУвеличение = Читалка.GetDecimal(28);
							Ссылка.СуммаУменьшение = Читалка.GetDecimal(29);
							Ссылка.УчитыватьИсправлениеИсходногоДокумента = ((byte[])Читалка.GetValue(30))[0]==1;
							Ссылка.СчетФактураБезНДС = ((byte[])Читалка.GetValue(31))[0]==1;
							Ссылка.СуммаНДСУвеличение = Читалка.GetDecimal(32);
							Ссылка.СуммаНДСУменьшение = Читалка.GetDecimal(33);
							Ссылка.СуммаНДСДокумента = Читалка.GetDecimal(34);
							Ссылка.ИсправляемыйСчетФактура = V82.ДокументыСсылка.СчетФактураПолученный.ВзятьИзКэша((byte[])Читалка.GetValue(35));
							Ссылка.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка.Получить((byte[])Читалка.GetValue(36));
							Ссылка.БланкСтрогойОтчетности = ((byte[])Читалка.GetValue(37))[0]==1;
							Выборка.Add(Ссылка);
						}
							return Выборка;
					}
				}
			}
		}
		
		public static V82.ДокументыОбъект.СчетФактураПолученный СоздатьЭлемент()
		{
			var Объект = new V82.ДокументыОбъект.СчетФактураПолученный();
			Объект._ЭтоНовый = true;
			Объект.Ссылка = Guid.NewGuid();/*http://msdn.microsoft.com/ru-ru/library/aa379322(VS.85).aspx*/
			Объект.НомерВходящегоДокумента = "";
			Объект.НомерВходящегоДокументаЭлектронногоОбмена = "";
			Объект.Комментарий = "";
			Объект.КодВидаОперации = "";
			Объект.НомерИсходногоДокумента = "";
			Объект.ИсправляемыйСчетФактура = new V82.ДокументыСсылка.СчетФактураПолученный();
			Объект.ВидСчетаФактуры = V82.Перечисления/*Ссылка*/.ВидСчетаФактурыПолученного.ПустаяСсылка;
			return Объект;
		}
	}
}